package com.feicheng.controller;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.feicheng.base.common.DaoConstant;
import com.feicheng.base.result.Result;
import com.feicheng.entity.PurchaseItem;
import com.feicheng.model.PurchaseHeaderWithUser;
import com.feicheng.service.IPurchaseHeaderService;
import com.feicheng.service.IPurchaseItemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;


/**
 * <p>
 * 前端控制器
 * </p>
 *
 * @author clin.song
 * @since 2022-07-05
 */
@RestController
@RequestMapping("/purchase")
public class PurchaseDetailController {

    @Autowired
    IPurchaseHeaderService iPurchaseHeaderService;

    @Autowired
    IPurchaseItemService iPurchaseItemService;

    /**
     * 门店采购订单详情接口
     *
     * @param purchaseHeaderId 采购头主键
     * @return
     * @autor clin.song
     */
    @PostMapping("/detail/page/g")
    public Result getPurchaseDetail(
            Integer purchaseHeaderId,
            @RequestParam(defaultValue = "1") Integer current,
            @RequestParam(defaultValue = "10") Integer size) {

        //构建动态查询条件
        QueryWrapper<PurchaseHeaderWithUser> purchaseHeaderWithUserQueryWrapper =
                new QueryWrapper<>();

        //将采购单id作为查询条件
        purchaseHeaderWithUserQueryWrapper.eq(
                DaoConstant.PURCHASE_HEADER.PURCHASE_HEADER_ID,
                purchaseHeaderId);

        //根据条件查询数据
        PurchaseHeaderWithUser purchaseHeaderWithUser =
                iPurchaseHeaderService.selectPurchaseHeaderWithUser(
                        purchaseHeaderWithUserQueryWrapper);

        //构建结果集
        JSONObject result = new JSONObject();

        //将数据放到结果集中
        result.put(DaoConstant.MODEL.PURCHASE_HEADER_WITH_USER.TABLE,
                purchaseHeaderWithUser);

        //构建分页
        Page<PurchaseItem> page = new Page<>(current, size);

        //构建动态查询条件
        QueryWrapper<PurchaseItem> purchaseItemQueryWrapper =
                new QueryWrapper<>();

        //将采购单id作为查询条件
        purchaseItemQueryWrapper.eq(
                DaoConstant.PURCHASE_ITEM.PURCHASE_HEADER_ID,
                purchaseHeaderId);

        //将查询结果进行分页
        Page<PurchaseItem> purchaseItemPage = iPurchaseItemService.page(
                page,purchaseItemQueryWrapper);

        //将数据放到结果集中
        result.put(DaoConstant.PURCHASE_ITEM.TABLE, purchaseItemPage);

        return Result.success(result);
    }

}
